package com.dddd.bloggenerator.config;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import org.springframework.context.annotation.Bean;

//@Configuration
public class GeneratorConfig {


    @Bean
    public AutoGenerator autoGenerator(){

//        // 生成器
//        AutoGenerator ag = new AutoGenerator();
//
//        // 全局配置
//        GlobalConfig gc = new GlobalConfig();
//        gc.setAuthor("dddd");
//        String outPutDir = System.getProperty("user.dir")+"/src/main/java";
//        gc.setOutputDir(outPutDir);
//        // 生成之后是否打开资源管理器
//        gc.setOpen(false);
//        //重新生成时文件是否覆盖
//        gc.setFileOverride(false);
//        //去掉Service接口的首字母I
//        gc.setServiceName("%sService");
//        //主键策略
////        gc.setIdType(IdType.AUTO);
//        //定义生成的实体类中日期类型
//        gc.setDateType(DateType.ONLY_DATE);
//        //开启Swagger2模式
//        gc.setSwagger2(false);
//
//        ag.setGlobalConfig(gc);
//
//        // 数据源配置
//        DataSourceConfig dsc = new DataSourceConfig();
//        dsc.setDriverName("com.mysql.jdbc.Driver");
//        dsc.setUsername("root");
//        dsc.setPassword("root");
//        dsc.setUrl("");
//        dsc.setDbType(DbType.MYSQL);
//        ag.setDataSource(dsc);
//
//        // 4、包配置
//        PackageConfig pc = new PackageConfig();
//        //模块名
//        pc.setModuleName("");
//        pc.setParent("com.dddd.cblog");
//        pc.setController("controller");
//        pc.setEntity("entity");
//        pc.setService("service");
//        pc.setMapper("mapper");
//        ag.setPackageInfo(pc);
//
//        //5、策略配置
//        StrategyConfig strategy = new StrategyConfig();
//        //对那一张表生成代码
//        strategy.setInclude("user");
//        //数据库表映射到实体的命名策略
//        strategy.setNaming(NamingStrategy.underline_to_camel);
//        //生成实体时去掉表前缀
//        strategy.setTablePrefix(pc.getModuleName() + "_");
//        //数据库表字段映射到实体的命名策略
//        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//        // lombok 模型 @Accessors(chain = true) setter链式操作
//        strategy.setEntityLombokModel(true);
//        //restful api风格控制器
//        strategy.setRestControllerStyle(true);
//        //url中驼峰转连字符
//        strategy.setControllerMappingHyphenStyle(true);
//        ag.setStrategy(strategy);
        return null;
    }
}
